Today, data processing and data communication technology are highly developed. As a result, in addition to usual computer data, various types of data such as images (still images and moving images) and audio are processed electronically.
In general, image and audio data contains a large amount of redundant data and has an extremely large size. Thus, if the image or audio data is stored on a storage device or transmitted through a network in its original form, the load on the memory capacity and/or the communication line becomes large. Therefore, when storing or transmitting image or audio data, the redundancy of the original data is eliminated by encoding the data; in other words, the original data is compressed. The compressed image data is decompressed before it is used.
An example of a known high-efficiency coding and compression method for an audio signal is adaptive transform acoustic coding (ATRAC). In ATRAC, the audio signal is divided into four frequency bands by a band-dividing filter. Then, the divided bands are compressed after the time line data stream is transformed into a frequency axis data stream by modified discrete cosine transform (MDCT). In this case, the absolute threshold of hearing and the audio masking effect are applied to eliminate audio components that are difficult to hear and the data before and after a loud sound. In this way, the amount of coded data is reduced without degrading the quality of the sound a user hears.
Coding and compression of data, in general, are performed and adjusted so that the data maintains a predetermined data compression rate (bit rate) and a compression-decompression quality. Thus, when data is delivered via a plurality of lines having different bandwidths or a line having a variable transmission quality, the data must be compressed at a rate suitable for the bandwidth and/or a plurality of compressed bit streams having a predetermined quality must be generated.
Recently, a ‘streaming’ technology in which data is reproduced while it is downloaded is widely used on the Internet. However, there is a problem in that the bandwidth is variable. For example, it is common for a client computer to carry out FIFO buffering to deal with a temporary reduction in the amount of transferred data or jitter. To respond to a large change in the amount of transferred data, a plurality of data streams is prepared by encoding the original data in a plurality of bit rates. Then, the data stream to be delivered is dynamically selected in accordance with the communication conditions between the server and the client, and is delivered to the client. An example of the latter case is Sure Stream by Real Networks, Inc.
When the above-mentioned methods are used, the first set of data is not reproduced until the FIFO buffer is filled. As a result, there is a delay of several seconds before the streaming begins. When one data stream is selected among a plurality of data streams in accordance with the communication conditions, the compression process becomes complex because a plurality of datasets have to be prepared for one original dataset. Moreover, managing the system for delivering the data becomes complicated because extra data storage space and communication lines are required to store and transfer the plurality of datasets.